機構も整った(完成した)ことですので、それではそれらの機構をどうやって動かすかを考えてみましょう。

本来のCNCを中心とした考え方であれば制御の全てをPC(パソコン)側で行うと言った方向になるかと思います。
が・・・しかし残念ながら私は、入門者の皆様と同じくPCでの制御を組む為の
[マクロ]等々の知識がありません。

また全ての制御をPC側に依存してしまうと、制御自体がそれぞれのCNC機械固有の制御方式となり汎用性に掛けてしまう可能性があります。

いわゆる『私はマシニングセンタを完成・構築する事が出来ましたが・・・環境の違う他の方にとっては何ら流用性が無く参考にならないもの・・・』と・言う事になってしまいます。

それでは私の意図する事から大きく外れてしまいますので、苦労して私がマシニングセンタを作る意味がなくなってしまいます。

そこで今回は[ATC]分部を独立した制御にして他の機械(CNC)にも装置の若干の変更で転用(流用)可能なように考えましょう。

その為には[ATC]分部の制御を専用のボード(基板)や、PCの増設などではなく一般的で安価に入手可能な
[PLC](プログラマブルコントローラー)旧通称シーケンサーに独立させて負担させる事にしましょう。

これで標準のCNCにあくまでも
プラスαで後付できる[ATC]が完成でき、皆さんのCNCが[マシニングセンタ]に早変わりする事でしょう。

[PC]や[CNC基板]や[ATC制御部]の取り合い(役割分担)を下図に纏めてみましょう。

【 制御機器の構成 】
冒頭でご説明いたしましたように各制御機器の役割分担を明確にします。

【PC(パソコン)】 CNCソフトであるMach2/3により通常のCNCと同様に各軸のステッピングモーターの駆動の為の制御のみを行う。
[ATC]に関しては、[ツール交換命令]の出力と[ツール交換完了信号]の受領のみを行う。
【CNC基板】 既設[QUATTRO]を使用しPCからのステッピングモーター制御信号により実質的にモーターを駆動するドライバーとして使用する。
【PLC】
(プログラマブルコントローラ)
PCからの信号により一連のツール交換動作(ATC動作)の全て制御する。
【インターフェース基板】 PCの[パラレルポート(プリンターポート)]より送出される微弱な信号をPLCで受けれるように信号レベルを合わせる役目を担う。
【 装置の動作 】
それでは各制御の役割分担も決まりましたので
実際の装置の動作を各機構のステージで詳しく述べましたがもう一度復習してみましょう。
[不要ツールホルダーの取り外し]
まずは[ツール交換信号]を受けてツールを取り外し収納させる動作を確認しましょう。
@ 所定の待機位置から[アーム]が水平反時計回転移動して[ツール]を銜える(リミットスイッチと物理ストッパーで所定位置で停止)。
A 開放装置が[ツール]を下に押し出すとともに、[アーム]は[ベース]ごと下降して[ツール]を最下部まで引き抜く(リミットスイッチにより最下部で停止)。
B [アーム]がそのまま移動するとマガジンに激突するので水平時計回転移動をさせ一旦途中で停止させる。
C 最上部まで[アーム]を[ベース]ごと上昇させる(リミットスイッチにより最上部で上昇は停止)。
D [アーム]が再度水平時計回転し[マガジン]上部まで移動(リミットスイッチと物理ストッパーで所定位置で停止)。
E [アーム]は[ベース]ごと最下部まで下降して銜えている[ツール]を[マガジン]の[空ケース]に挿入する。(リミットスイッチにより最下部で停止)
F [マガジン]の逆転により[アーム]から[ツール]が釈放されると同時に[アーム]は[ベース]ごと上昇して退避する。(リミットスイッチにより最上部で上昇は停止)
[マガジンのツールセレクト]
マガジンの必要動作を考えて見ましょう(ツールのセレクトやアームへのツール拘束と釈放が基本動作)
@ 空の[ケース]を検出して[アーム]下降位置の真下まで回転して待機(リードスイッチにより検出)
A [アーム]により[空ケース]に[ツール]が挿入されると[マガジン]を逆転して[アーム]から[ツール]を釈放(ローターリーエンコーダーにより回転量を検出)
B [アーム]が最上部へ退避後[マガジン]は約1周ほど回転して[マガジン]の原点位置で一旦停止(ローターリーエンコーダーのZ原点により検出)
C [PC]側より入力された[指定ツールナンバー]に予め設定した必要移動量を原点から[マガジン]の回転により移動させ[アーム]の真下+1/8回転で停止(ローターリーエンコーダーにより回転量を検出)
D [アーム]が最下部まで下降後[マガジン]を1/8回転反時計回りに回転させ[アーム]に新しい[ツール]を銜えさせる(ローターリーエンコーダーにより回転量を検出)
 [ツールのセット ]
新しいツールの主軸へのセットが基本動作
@ [アーム]は[マガジン]が[ツール]をセレクトすると同時に最下部まで下降し[新しいツール]を銜える準備をする(リミットスイッチにより最下部で停止)。
A [マガジン]の回転により[アーム]に[ツール]を銜えると最上部まで[アーム]を[ベース]ごと上昇させる(リミットスイッチにより最上部で上昇は停止)。
B [アーム]を水平反時計回転で移動させる・が・そのままでは主軸に激突するので途中で停止。
C 一旦、[アーム]は[ベース]ごと最下部まで下降して停止(リミットスイッチにより最下部で停止)
D 再度[アーム]は水平反時計回転し[主軸]真下まで移動(リミットスイッチと物理ストッパーで所定位置で停止)。
E [アーム]は[ベース]ごと上昇、最上部付近より(中間位置リミットスイッチにより検出)開放装置により[ツール]を引き込みはじめる(リミットスイッチにより最上部で上昇は停止)
F [アーム]は水平時計回転移動して[マガジン]最上部の待機位置に戻る(リミットスイッチと物理ストッパーで所定位置で停止)。

【その他の必要動作等考慮すべき点】

   上記の基本動作に加えて下記事項も制御事項に入れておかなければなりませんね。  (^_^;)

 マガジンの[空ケース]検出
不要ツール(取り外しツール)の空ケースが必ずアームによる収納位置に来ているとは限りません。
作業開始時に何らかの理由により手動により好みのツールを抜き去り主軸にセットする場合が想定されますので、収納前には必ず[空ケース]を検出して、そのケースを所定の位置にシフトしておかなければなりません。

 エンコーダーによる原点検出
ツール交換を頻繁に行うとマガジンの多回転により停止位置の誤差が累積的に蓄積されてゆく事が考えられますので新しいツールをセレクトする為のマガジンの回転は必ず原点から行う。
位置検出のエンコーダーが1,000パルスなのでPLCの高速カウンター端子(X00)を使用し入力フィルターの調整を行う。

 ブレーキの制御
マガジンの回転停止時はブレーキにより停止位置精度を向上させる。
但しツールの抜き差し時はツールに追従するようにブレーキは開放する。

 主軸位置の検出
主軸が機械原点の位置に退避した時のみATCの動作を許可する。
コラムのトップにマイクロスイッチを取り付けて主軸が最上部(機械原点)に到達した事を検出しましょう。
既設のCNCのZ軸原点スイッチ(フォトマイクロスイッチ)とは別に独立した物をとりつけましょう。



 手動操作
外付けスイッチにより手動によりATCを単独動作可能とする。
PLCの入力端子にPCからの信号線が接続されますが、それと並列にツール番号毎にスイッチを付けて置きましょう。
誤操作を防ぐ為にスイッチのコモンに、もう一つスイッチを入れて手動操作の許可と停止を選択できるようにしましょう。
これでPCやCNCが立ち上がっていなくても単独でATCを動作させれますね。


【 PLCの機種選択 】

上記で装置(ATC)の動作もおおよそ決まりましたので、それでは[PLC]の機種選択をしましょう。

まずはメーカーですが使い慣れた機種があれば、そのメーカーで良いのですが・・・・

本来は私の生い立ちから申し上げますと[日立]等々なのですが・・・・(^_^;) ・・・・

これはあくまで私の私見ですが現在国内で一番メジャーなメーカーは[三菱]ですので何らかの・しがらみがなければ迷う事無く[三菱]にするべきでしょう。

これは単にメジャーだと言う理由だけではなくPLC自体の実勢価格も安価である事と、シーケンスプログラムの開発環境が整っておりPCでの入力における専用ソフトも販売価格は10数万円とされていますが実際にはコピー版で多数出回っており、またメーカーや販売店にコネがあると只でCopyしてもらえる可能性もある事が選択にいたる最大の要因です。

特に、入門者の方に取っては[三菱]であれば必ず近くに教えていただける方が大勢いる事も重要な要素ですね。

下記は[三菱]の【GX Developer】というシーケンスプログラムの開発及び入出力(書き込み・読み込み・モニター)ソフトで誰でも直感的に操作できる優れもののソフトです。


またシーケンスプログラムの入力の為に[PC]と[PLC]を接続するケーブルも[富士電機]等では4〜6万円もしますが[三菱]の物は実売価格で1万円前後でUSB接続の物が手に入ります。


メーカーは、まずは良しとして・・・機種の決定になりますが大きな選択肢にはPLCの[入力]と[出力]の点数があります。
当然、各点数が多くなると価格も高くなりますし大きさ(外形寸法)も大きくなります。

将来の拡張が予測されるのであれば、それらも見込んだ入出力点数の物を選択しましょう。

残りの選択肢としてはPLCの[出力]で[リレー接点出力]か[トランジスター無接点出力]か・・と・言う事です。
これはご存知のようにPLCの内部でプログラムした動作に合わせて出力を[ON/OFF]させる訳ですが、この[ON/OFF]を従来型の[リレーの接点]で行うか・・・若しくは[トランジスター]によって行うかの違いです。

好みもありますが・・・今回の場合は、どちらでなければならない・と・言った制約はありません。
ただし寿命的には[トランジスタ出力]の物の方が断然有利でしょうね。

いずれにせよ今回の制御に必要な[入出力点数]を数えてみる為に下記の様な表にまとめてみましょう。


ただし、ここで注意が必要なのは一つのDCモーターを正転/逆転をする為には当然極性を変える為に4組みの接点が必要になるわけですが一般的には
ダイレクトに(直接PLCの接点を使って)ON/OFFする事はなくパワーリレーを介して動作させます。

これは小型なPLCの接点で駆動できる容量には制限があり(1〜2A程度)、また短絡等のトラブルでPLCを壊さない為でもります。

言うなれば下図のように外付けのリレーのコイルのみをPLCによってドライブするわけですので、この場合の必要出力接点数は2個となるわけです。

下図は[Y0]もしくは[Y1]がONすることによりモーターにかかる電圧の極性が随時入れ替わります。

下画像がPLCとリレーユニットの組み合わせです。
【PLC(シーケンサ)端子割付表】
端子 入     力 端子 出     力
デバイス 適  用 デバイス 適  用
L AC100V     COM     
N 24+    
COM     COM 0    
COM     Y 0    
COM     COM1    
X 0 EncA マガジン・位置パルス
(
高速カウンタ)
Y 1   予備 
X 1 T1 ツール#1
 選択信号
COM 2    
X 2 T2 ツール#2
 選択信号
Y 2 Ry-01 アーム
  水平正回転(反時計)
X 3 T3 ツール#3
 選択信号
Y 3 Ry-02 アーム
  水平逆回転(時計)
X 4 T4 ツール#4
 選択信号
Y 4 Ry-21 アーム
  垂直上昇
X 5 EncZ マガジン・原点 Y 5 Ry-22 アーム
  垂直下降
X 6 予備 COM 3
X 7 LS01 アーム主軸位置 Y 6 Ry-31 チャック開放
X10 LS02 アームマガジン位置 Y 7 Ry-32 チャック引き込み
X11 HOT21 アーム最上限 Y10 Ry-41 マガジン正回転
X12 LS21-5 アーム上限5mm下 Y11 Ry-42 マガジン逆回転
X13 LS22 アーム最下限 COM 4
X14 LS31 チャック開放完了 Y12 Ry-50 マガジンブレーキ
X15 LS32 チャック引込完了 Y13 予備
X16 ReedS マガジン・空検出 Y14 予備
X17 SW-0 ATC ON/OFF Y15 ツール交換終了信号

これで[入力](リミットスイッチやフォトマイクロスイッチの数)は16点[出力](モーター駆動信号やソレノイドなど)の点数が約11点なのが分りますね。


上述の諸々の選択肢により今回は下図の[三菱]【FX1S-30MR】(リレー出力)を使う事に決定しましょう。
【 PLCのプログラム 】

それでは上述の動作条件に合わせてPLCの制御プログラムを考えて見ましょう。

    
おっ〜と・・・・その前にプログラム方式を決定しましょう。



【ラダーシンボルでのプログラム方式】

PLCのプログラムについては一般的にはリレーシーケンスのシンボルに対応した、LD、AND、ORなどの命令を用いたものをリレーシンボル方式と言い現在は上述した【GX Developer】等のソフトを使いPC画面上でラダー図を入力する事により行うようです。

下図は【GX Developer】の画面であり、動作させたい入力機器に対するスイッチ等の入力条件をメニューバーにあるA接点やB接点をAND(直列)若しくはOR(並列)に配置するだけでプログラムはできてゆきます。

ただし注意しなければならない事があります。
それは、この一般的な方式はラダーに書かれたシーケンスは常に同時に実行されますので(厳密にはサイクル時間内に順を追ってですが一般的には同時と考えます)下図のようにX000の接点がONするとY000が出力され、Y000の自分の接点により自己保持がかかりX001が切れるまで出力を続けるといった単純な回路なのですが次の行の黄色のラインのように入力接点(X)はいくらでも重複使用ができますが
出力接点(Y)はけっして重複する事ができません・・・・当たり前の事ですが、意外とこの事がウィークポイントになる場合があります。


【SFCによるプログラム方式】

その他のPLCのプログラミング形式としてSFC(SEQUENTIAL FUNCTION CHART状態遷移図)と言う物もあります。

これは簡単に言うと
[工程歩進型]のプログラミング形式であり一つの条件が(移行条件)が成立して初めて次の行のプログラムの実行に移ると言ったものです。

すなわち下図の例として上げれば段階的に一つのモーターを運転等をさせる場合にはスイッチで[製造指令]が入ると[出力部1]としてモーター1を回転させ、ある位置でリミットスイッチ等がONすれば停止させ次のプログラムの条件に従い、もう一つのリミットがONすると再度同じモーター1が回転し始める。
次に何かの移行条件になるスイッチがONすると再度モーター1は回転する。

上手く説明できませんが、このように一見単純そうに見える動作条件でも上述の[ラダー入力]でプログラムするとなると[二重コイル]が使えませんので意外と面倒ですが、このSFC(工程歩進)形式ですと[二重コイル]と言う概念がありませんので[スイッチが入ったらモーター1を回せ][リミットで止まったら先程の命令は全部忘れろ!]そして[次のスイッチが入ったら再度モーター1を回せ]・・・・といった具合に一歩一歩決められた工程を歩進しながら進んでゆくと言った形式で現在実行中のブロックに書き込まれた条件以外の他のブロックに書き込まれた条件は一切無視しますので出力はいくらでも重複できます。

これですと電気が苦手な機械屋さんでも実際の動作を見ながら直感的にプログラムが組めるので非常に便利なのですが・・・・通常のラダーシーケンスに馴染みの深い方には、昔から有る方式にも拘らず・どうも取っ付きにくく普及は今一歩ですね。

【STL(ステップラダー)によるプログラム方式】

上述した【ラダーシンボル】や【SFC】の各プログラム方式には当然一長一短ありますが、それらの長所のみを複合した物が
【STL】です。
これは電気屋さん(制御屋さん)お馴染みの【ラダーシンボル】で、工程歩進である【SFC】の機能を使おうと言う優れ物の方式です。

いわゆる
[二重コイル]もOKちゆぅ〜事です  ヽ(^。^)ノ

簡単に説明しますと従来どおり【ラダーシンボル】でシーケンスプログラムを組む訳ですが、従来通りの記述の部分は【ラダーシンボル】とおり各入力条件により出力は同時並行処理されます。

・・・・・が・ラダー中に書き込む
[STL][SET]で対をなす記述の部分は[工程歩進命令]となります。
下図を例にしますと276行目の[X013]がONして
[SET S34]が実行されると初めて次の行の[STL S34]〜[SET S35]までの間に挟まれた行が条件実行されます。

[STL S34]〜[SET S35]までの青い部分が一組の工程となっています。

言い換えれば[SET S34]が実行されない限りは280行目の[M20]の条件が整っても、その出力の[M14]は動作しないと言う事です。

また285行目の次行への移行条件である[M14]がONして[SET S35]へ歩進されると先程の[STL S34]〜[SET S35]までの間に挟まれた行の出力動作は全て一旦OFFになります。

このように外部からの条件や指示を常に受動的に待ち受けて、その入力条件に合わせて出力しなければならない分部は[ラダーシンボル]で書いておき一旦信号が入ると一連の決まった動作をさせる分部には[STL]で書いておけば良いでしょう。

     と・・言う事で今回はこの方式(手法)でプログラムを組みましょう  ヽ(^。^)ノ

PLCのプログラミング方式も決定したところで、いよいよプログラムを組みましょう。

一つ一つの動作毎に説明していては日が暮れますので実際のプログラムを下記にアップしておきますのでご参照下さい。

    こちらから→  (PDF圧縮版 約124KB)

制御については要点を纏めましたが説明不足の点が有りましたらご容赦下さい。


さて制御方式も決定しましたので次は
今回のPLCとPC(パソコン)を実際にどのように(ハード的に)接続するかがテーマです。

超長編になってきていますが私も、もう一息頑張りますので皆さん引き続き御笑覧下さい。